home *** CD-ROM | disk | FTP | other *** search
/ Libris Britannia 4 / science library(b).zip / science library(b) / CUGUK / PROG_TOO / C027B.ZIP / LIBFP / FP_SCAN.C < prev    next >
Text File  |  1990-03-30  |  517b  |  38 lines

  1. double
  2. fp_scan(neg, eneg, ipart, fpart, epart, flen)
  3. long ipart, fpart, epart;
  4. {
  5.     double val, fmul, fexp;
  6.  
  7.     val = ipart;
  8.  
  9.     fmul = 1.0;
  10.     while (flen--)
  11.         fmul *= .1;
  12.     val += fmul*(double)fpart;
  13.  
  14.     if (epart) {
  15.         fmul = 1.0;
  16.         if (eneg)
  17.             fexp = 1e-10;
  18.         else
  19.             fexp = 1e10;
  20.         while (epart >= 10) {
  21.             fmul *= fexp;
  22.             epart -= 10;
  23.         }
  24.         if (eneg)
  25.             fexp = 1e-1;
  26.         else
  27.             fexp = 1e1;
  28.         while (epart--)
  29.             fmul *= fexp;
  30.         val *= fmul;
  31.     }
  32.  
  33.     if (neg)
  34.         val = -val;
  35.  
  36.     return val;
  37. }
  38.